public class TestDemo {
    public static void main(String[] args) {
        for (int i=0;i< args.length;i++) {//args.length可以计算出数组args的长度
            System.out.println(args[i]);//使用cmd javac编译含有中文字符的java源文件时，可能会报错显示不可映射的字符
        }                               //这个时候我们加个尾缀，例如javac TestDemo -encoding utf-8
        System.out.println("success");
        System.out.println("success2");
        //System.out.println(int.MAX_VALUE);编译报错
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);//包装类，相当于int的plus版本，包含了很多的功能操作
        final int a=0;//java里常量的关键字是final，常量一经定义无法修改
        System.out.println(a);
        //int b=2147483648;编译报错，超过了其取值范围
    }

    public static void func1(String[] args) {
        long c=8;
        System.out.println(c);
        System.out.println(Long.MAX_VALUE);
        System.out.println(Long.MIN_VALUE);//long的包装类是Long
    }

    public static void func2(String[] args) {
        short d=2;
        System.out.println(d);
        System.out.println(Short.MAX_VALUE);
        System.out.println(Short.MIN_VALUE);//short的包装类是Short
    }

    public static void func3(String[] args) {
        //8个bit位 7个字符位
        byte e=1;
        byte a =(byte)128;//强制转换，结果为127+1而变成-127
        System.out.println(e);
        System.out.println(Byte.MAX_VALUE);
        System.out.println(Byte.MIN_VALUE);//byte的包装类是Byte
    }

    public static void main1(String[] args) {
        double f=8;
        System.out.println(f);
        System.out.println(Double.MAX_VALUE);
        System.out.println(Double.MIN_VALUE);
        //符号位 指数位 IEE754标准 尝试用有限空间表示可能无限的小数, 势
        //必会存在一定的精度误差，因此浮点数是个近似值，并不是精确值

        int m=1;
        int n=2;
        System.out.println();
    }

    public static void main2(String[] args) {
        float g=4.1f;
        System.out.println(g);
        System.out.println(Float.MAX_VALUE);
        System.out.println(Float.MIN_VALUE);
    }

    public static void main3(String[] args) {
        char ch1='a';//c语言中，char型只占一个字节，而汉字占两个字节，因此在c语言中，汉字无法使用char型来储存
        System.out.println(ch1);

        char ch2='帅';//而在java中，char型占两个字节，因此char型可以储存汉字
        System.out.println(ch2);

        System.out.println(Character.MAX_VALUE);

    }

    public static void main4(String[] args) {
        boolean flag=true;
        System.out.println(flag);//boolean的包装类型是Boolean，boolean 类型的变量只有两种取值, true 表示真, false 表示假
    }

    public static void main5(String[] args) {
        int a=10;
        long b=20;
        //int c=a+b;编译出错，会丢失数据
        int c=(int)(a+b);
        long d=a+b;
       //-----------------------------------------------------------------------------------------------------
        byte m=10;
        byte n=20;
        //byte j=m+n;编译报错，对于小于4个字节的运算，会先把小于四个字节的，提升为四个字节
        int j=m+n;
        byte k=(byte)(m+n);
    }

    public static void main6(String[] args) {
        String str1="hello";
        String str2="world";
        int a=10;
        int b=20;
        System.out.println(str1+str2);//加号两边是字符串时，加号的作用是拼接字符串
        System.out.println("a== "+a +"b== "+b);//a== 10 b== 20 10和20本质上还是字符串
        System.out.println("a+b=="+ a + b);//1020
        System.out.println("a+b=="+(a+b));//30

    }

    public static void main7(String[] args) {
        int a=123;
        String ret=String.valueOf(a);
        //String ret=a+"";
        System.out.println(ret);//把int转换为string的两种小方法
    }

    public static void main8(String[] args) {
        String str="123";
        int val=Integer.parseInt(str;
        System.out.println(val+1);//124 把string转化为int的小方法

    }
}